package com.book.service;

import com.book.core.domain.SysRole;
import com.baomidou.mybatisplus.extension.service.IService;
import com.book.core.dto.SysUserGrantRoleDTO;
import com.book.core.query.SysRoleQuery;
import com.book.core.vo.PageVO;

import java.util.List;

/**
* @author hongmizfb
* @description 针对表【sys_role(系统角色表)】的数据库操作Service
* @createDate 2025-05-11 16:30:25
*/
public interface SysRoleService extends IService<SysRole> {

    PageVO<SysRole> getSysRolePage(SysRoleQuery query);

    /**获取一个用户的角色列表（启用状态）
     * @param userId
     * @return {@link List }<{@link SysRole }>
     */
    List<SysRole> getRoleListByUserId(Integer userId);

    /**获取一个用户的角色编码列表（启用状态）
     * @param userId
     * @return {@link List }<{@link String }>
     */
    List<String> getRoleCodeListByUserId(Integer userId);

    boolean isAdmin(Integer userId);

    List<Integer> getRoleIdListByUserId(Integer userId);

    void grantUserToRole(SysUserGrantRoleDTO dto);
}
